package view;

import java.awt.Dialog;
import java.util.List;

import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JButton;

import dao.DAOFactory;
import dao.IContrachequeDAO;
import dao.IPessoaDAO;
import model.Contracheque;
import model.Pessoa;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class RelatorioEmpresaView extends FFDialog {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8305939672067006945L;
	private JTable table;
	private Pessoa empresa;
	private IPessoaDAO daoPessoa = DAOFactory.getPessoaDAO();
	private IContrachequeDAO daoContracheque = DAOFactory.getContrachequeDAO();
	private JLabel lblNomeDaEmpresa;
	private DefaultTableModel dtm;
	

	/**
	 * @wbp.parser.constructor
	 */
	public RelatorioEmpresaView(Dialog principal, String caption, boolean modal, int id_empresa) {
		super(principal, caption, modal);
		setBounds(100, 100, 760, 510);
		getContentPane().setLayout(null);
		
		empresa = daoPessoa.findById(id_empresa);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 40, 716, 385);
		getContentPane().add(scrollPane);
		
		table = new JTable();
		dtm = new DefaultTableModel(
				new Object[][] {
				},
				new String[] {
					"C\u00F3digo", "M\u00EAsRef", "AnoRef", "Funcion\u00E1rio", "CPF", "RG", "Sal\u00E1rio", "Sal. Fam\u00EDlia", "INSS", "FGTS", "IRRF"
				}
			);
		table.setModel(dtm);
		scrollPane.setViewportView(table);
		
		lblNomeDaEmpresa = new JLabel("Nome Da Empresa");
		lblNomeDaEmpresa.setBounds(10, 15, 194, 14);
		getContentPane().add(lblNomeDaEmpresa);
		
		JButton btnNewButton = new JButton("Fechar");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				closeWindow();
			}
		});
		btnNewButton.setMnemonic('F');
		btnNewButton.setBounds(637, 436, 89, 23);
		getContentPane().add(btnNewButton);
		populateLabels();
		populateGrid(daoContracheque.findAllContrachequeByEmpresa(empresa.getId_pessoa()));
	}
	
	public void populateLabels(){
		lblNomeDaEmpresa.setText("Empresa: " + empresa.getNome_pessoa());
	}
	
	public void populateGrid(List<Contracheque> dados) {
		dtm.setRowCount(0);
		
		for (Contracheque c : dados) {
			dtm.addRow( new Object[] {
				c.getId_contracheque(),
				c.getMes_referencia(),
				c.getAno_referencia(),
				c.getNome_funcionario(),
				c.getCpf(),
				c.getRg(),
				c.getSalario(),
				c.getSalario_familia(),
				c.getInss(),
				c.getFgts(),
				c.getIrrf()
			});
		}
		table.setModel(dtm);
	}
	
	
}
